home *** CD-ROM | disk | FTP | other *** search
/ PC-Blue - MS DOS Public Domain Library / PC-Blue MS-DOS Public Domain Library - NYACC.iso / vol033 / pdate.bas < prev    next >
Encoding:
BASIC Source File  |  1987-01-11  |  1.5 KB  |  52 lines

  1. 100 OPTION BASE 1: DIM MONLEN(12)
  2. 101 STYEAR=1979
  3. 110 INPUT "enter julian date";DATE
  4. 120 GOSUB 1400
  5. 125 PRINT DAY, MONTH, YEAR
  6. 130 GOTO 110
  7. 1400 '
  8. 1410 REM  PROGRAM PDATE - TO CONVERT CONSECUTIVE JULIAN DATES TO
  9. 1420 '                    MM/DD/YYYR
  10. 1430 '                    by Deane Wang - Cybersoft Group
  11. 1440 '
  12. 1450 '   NEEDS IN MAIN:
  13. 1460 '         OPTION BASE 1
  14. 1470 '         DIM MONLEN(12)
  15. 1480 '   transfer argument as DATE
  16. 1490 '   set STYEAR as first of of Julian counting
  17. 1500 '
  18. 1510 '   INITIALIZE
  19. 1520 '
  20. 1530 MONLEN(1)=31: MONLEN(2)=28: MONLEN(3)=31: MONLEN(4)=30
  21. 1540 MONLEN(5)=31: MONLEN(6)=30: MONLEN(7)=31: MONLEN(8)=31
  22. 1550 MONLEN(9)=30: MONLEN(10)=31: MONLEN(11)=30: MONLEN(12)=31
  23. 1560 FOR I=1 TO 4: LENYR(I)=365: NEXT I
  24. 1570 '
  25. 1580 '   CONVERT TO 1 TO 366 UNITS
  26. 1590 '
  27. 1600 NFRYR=INT(DATE/1461!)  'how many 4 year cycles
  28. 1610   FOR NCT=1 TO 4
  29. 1620   IF ABS(((STYEAR+NCT-1)/4!)-INT((STYEAR+NCT-1)/4)) < .001 THEN GOTO 1640
  30. 1630   NEXT NCT
  31. 1640 JFDATE=DATE-(NFRYR*1461)
  32. 1650 LENYR(NCT)=366
  33. 1660   FOR I=1 TO 4
  34. 1670   IF (JFDATE-LENYR(I)) <= 0 THEN GOTO 1700
  35. 1680   JFDATE=JFDATE-LENYR(I)
  36. 1690   NEXT I
  37. 1700 JDATE=JFDATE
  38. 1710 I=I-1
  39. 1720 '
  40. 1730 '   CALCULATE MONTH, DAY, YEAR
  41. 1740 '
  42. 1760 YEAR=STYEAR+NFRYR*4+I
  43. 1770 IF ABS((YEAR/4)-INT(YEAR/4)) <.001 THEN MONLEN(2)=29  'leap year???
  44. 1780   FOR M=1 TO 12
  45. 1790   IF JDATE-MONLEN(M)-1 < 0 THEN GOTO 1820
  46. 1800   JDATE=JDATE-MONLEN(M)
  47. 1810   NEXT M
  48. 1820 MONTH=M
  49. 1830 MONLEN(2)=28
  50. 1835 DAY=JDATE
  51. 1840 RETURN
  52. < 0 THEN GOTO 18